home *** CD-ROM | disk | FTP | other *** search
/ KeyGen Studio 2002 / KeyGen_Studio_2002.iso / Tutorials / Dos CrackMes / com / IPOLY.ZIP / readme.txt < prev   
Encoding:
Text File  |  1998-10-29  |  3.2 KB  |  87 lines

  1. Ipoly (crackme) by Ghiribizzo 1998
  2. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  3.  
  4. This is actually the product of various ideas that I've been playing around
  5. with. The main aim was to test how good a serial scheme needs to be to prevent
  6. keygens from being made. We know that we can make schemes arbitrarily difficult,
  7. but I suspect that a scheme need not be impossible to be safe.
  8.  
  9. The scheme here uses a fairly simple scheme, but I suspect the majority of
  10. crackers will not be able to produce a keygen for it - not due to any lack of
  11. cracking skill, but rather through shortcomings in certain areas of knowledge.
  12. However, when I give such a challenge, I expect to be proved wrong ;)
  13.  
  14. The scheme necessarily requires the use of floating point codes. I haven't used
  15. FPU instructions up till now and I know of some very good crackers who are in
  16. the same position. However, the Intel reference manuals provide everything
  17. required to use FPU opcodes.
  18.  
  19. One problem that did crop up was that SoftICE v3.23/v3.24 for 95/98 does not
  20. deal with the floating point registers properly. Luckily, Turbo Debug worked
  21. fine. I'd be interested to hear if anyone know of recent versions of SoftICE
  22. that handle the FPU correctly.
  23.  
  24. Description
  25. -----------
  26.  
  27. The crackme is in two parts. The first part takes the name and generates an 8
  28. byte license code. The challenge is to find a correct serial or write a keygen
  29. that will provide the correct serial.
  30.  
  31. Name Hash
  32. ---------
  33.  
  34. The name hash uses the LFSR from the keygen competition to create a 'unique'
  35. licence for a user. The method is pretty ad hoc: it basically uses the first 8
  36. bytes of the name to seed the generator then it takes the number of letters in
  37. the name and the first letter to determine how many 'clocks' will be 'skipped'
  38. before taking 8 bytes for the licence.
  39. The result of the LFSR requires some extra processing to make the scheme work.
  40. The value of the licence code is printed out for your convenience.
  41.  
  42. Serial Hash
  43. -----------
  44.  
  45. You can ignore the Name Hash part of the crackme and work with the given licence
  46. code and start to analyse the code from location 1A5h onwards. The serial is
  47. comprised of 8 integers. I was going to encode the serial so that it would be
  48. just a single string, but it is easier to see the algorithm this way.
  49.  
  50. Notes
  51. -----
  52.  
  53. The Name Hash checking only checks to ensure that the name will have a valid
  54. key code. It does not check to remove 'easy' names. Consequently, there is a
  55. class of names that have easily calculated keys. Two trivial ones result in
  56. licences: 12340000 and 14250000. Those who cannot calculate a key for their
  57. own name can try to find these 'easy' names which is a small reversing task
  58. in itself.
  59.  
  60. I have tried to make the code as 'verbose' as possible to make it easier to
  61. analyse the scheme. If you manage to code a keygen or make a serial, please
  62. email me: ghiribizzo@geocities.com
  63.  
  64. Sample
  65. ------
  66.  
  67. C:\>Ipoly
  68.  
  69. Ipoly (crackme) ■ Ghiribizzo 1998
  70.  
  71. Enter name  : Ghiribizzo
  72. Licence code: D2F3E345
  73.  
  74. Enter Key #1: 853
  75. Enter Key #2: 349
  76. Enter Key #3: -7
  77. Enter Key #4: -1
  78. Enter Key #5: 780
  79. Enter Key #6: 1560
  80. Enter Key #7: 780
  81. Enter Key #8: 1560
  82.  
  83. Congratulations!
  84.  
  85. C:\>
  86.  
  87. Good Luck!